文字列に対して色々な判定を行うためにあります。
- 変数の存在を確定する。
- 変数にデフォルト値を設定する。
- 変数に値が設定されていない場合エラーをキャッチする。
- 変数が一致するパターンの部分を取り除く。
ができる。
構文 基本形
演算子 置換内容 ${varname:-word} vaenameが存在して、NULLでない場合、その値をかえす。以外は,wordをかえす。
propose変数が定義されていない場合デフォルトの値を返す。 example${ringo:-0}は、りんごが定義されていない場合0と評価される。 ${varname:=word} vaenameが存在して、NULLでない場合、その値をかえす。以外は,wordをかえす。ただし位置パラメーター、特殊なパラメーターを除く。 propose変数が定義されていない場合デフォルトの値を設定する。 example${ringo:=0}は、りんごが定義されていない場合0と設定する。 ${varname:?message} vaenameが存在して、NULLでない場合、その値をかえす。以外は,varnameのあとに、wordを出力し現在のコマンドあるいは、スクリプトを中止する。(対話型でない場合)messageがない場合、"parameter null or not srt"を出力する。 propose変数が定義されていない場合のエラーをキャチする。 example${ringo:?notfine!}は、ringoが定義されていなければ、riobgo:notfine!と出力して終了する。 ${varname:+word} vaenameが存在して、NULLでない場合、そのwordをかえす。以外は,nullをかえす。 propose変数の存在を評価する。 example${ringo:+1}は、ringoが定義されていなければ1(真true)を返す。 ${varnameoffset}
${varname:offset:length}サブ文字を展開する。offsetから、lengthだけの文字列を$vaenameの値から切り取る。
最初の文字を0とカウントする。
lengthが省略された場合、offsetから最後までのサブ文字列が解される。
offsetがマイナスの場合、最後からカウントされる。
varnameが@の場合、lengthは、offsetを先頭とする位置バラメーターの番号となる。
propose文字の一部を返す。 exampleringoがringoissweet
${varname:5}
${varname:5:2}
${varname:-4:5}
issweet
is
sweet